<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
    <title>向钊君的博客</title>
    <link href="../css/index.css" rel="stylesheet" />
</head>
<body>
  <div class="index">
    <div class="index_title">
      <p class="title_left">
          欢迎来到向钊君的博客
      </p>
      <ul class="title_right">
        <li>
            <a href="">
                前端
              </a>
        </li>
        <li>
            <a href="">
                羊毛
              </a>
        </li>
        <li>
            <a href="">
                关于我们
              </a>
        </li>
      </ul>
    </div>
    <div class="index_content">
      <ul>
        <li>
          <a href="../index.html">
            2018.8.30
          </a>
        </li>
        <li>
            <a href="one.html">
              2018.6.11
            </a>
        </li>
        <li>
            <a href="two.html">
              2018.3.1
            </a>
        </li>
        
      </ul>
      <div class="index_content_right">
          <h2>#类型转换</h2>
          <p>
              转Boolean<br>
              在条件判断时，除了 undefined， null， false， NaN， ''， 0， -0，其他所有值都转为 true，包括所有对象。<br>
              
              # 对象转基本类型<br>
              对象在转换基本类型时，首先会调用 valueOf 然后调用 toString。并且这两个方法你是可以重写的。<br>
              
              let a = {<br>
                  valueOf() {<br>
                    return 0<br>
                  }<br>
              }<br>
              当然你也可以重写 Symbol.toPrimitive ，该方法在转基本类型时调用优先级最高。<br>
              
              let a = {<br>
                valueOf() {<br>
                  return 0;<br>
                },<br>
                toString() {<br>
                  return '1';<br>
                },<br>
                [Symbol.toPrimitive]() {<br>
                  return 2;<br>
                }<br>
              }<br>
              1 + a // => 3<br>
              '1' + a // => '12'<br>
          </p>
          <h2>#四则运算符</h2>
          <p>
              只有当加法运算时，其中一方是字符串类型，就会把另一个也转为字符串类型。其他运算只要其中一方是数字，那么另一方就转为数字。并且加法运算会触发三种类型转换：将值转换为原始值，转换为数字，转换为字符串。<br>

              1 + '1' // '11'<br>
              2 * '2' // 4<br>
              [1, 2] + [2, 1] // '1,22,1'<br>
              // [1, 2].toString() -> '1,2'<br>
              // [2, 1].toString() -> '2,1'<br>
              // '1,2' + '2,1' = '1,22,1'<br>
              对于加号需要注意这个表达式 'a' + + 'b'<br>

              'a' + + 'b' // -> "aNaN"<br>
              // 因为 + 'b' -> NaN<br>
              // 你也许在一些代码中看到过 + '1' -> 1<br>
          </p>

      </div>
    </div>
      
  </div>

  <script>
    
  </script>
</body>
</html>